package solitaire.controle;

import solitaire.InterfacesControle.ICColonne;
import solitaire.InterfacesControle.ICSabot;
import solitaire.InterfacesControle.ICTasDeCartesColorees;
import solitaire.application.Colonne;
import solitaire.application.Solitaire;
import solitaire.application.TasDeCartesColorees;
import solitaire.presentation.DnDListener;
import solitaire.presentation.PSolitaire;

public class CSolitaire extends Solitaire {

	protected PSolitaire presentation; 
	protected ICSabot sabot;
	protected Colonne[] colonnes;
	
	/*
	 * - Constructeur classe mere
	 * - Creer en presentation
	 * - Initialise l'application -> initialiser
	 * - lancer le jeu (texte / graphique) -> run
	 */
	public CSolitaire(String nom, CUsine usine) {
		
		super(nom, usine);
		//init DnDListener
		new DnDListener(usine);
		super.initialiser();
		
		presentation = new PSolitaire(this);
		DnDListener.setIHM(presentation);
		presentation.setVisible(true);
		super.jouer();
	}
	
	public void initialiser(){
		super.initialiser();
		sabot = (ICSabot) super.sabot;
		colonnes = super.pilesAlternees;
	}
	
	public ICSabot getSabot(){
		return (ICSabot) super.sabot;
	}
	
	/**
	 * Retourne un tableau de colonne
	 * @return
	 */
	public ICColonne[] getColonne(){
		Colonne[] temp=super.pilesAlternees;
		ICColonne[] tempC=new ICColonne[temp.length];
		for(int i=0;i<temp.length;i++){
			tempC[i]=(ICColonne) temp[i];
		}
		return tempC;
	}
	
	public ICTasDeCartesColorees[] getTasDeCartesColorees(){
		TasDeCartesColorees[] temp=super.pilesColorees;
		ICTasDeCartesColorees[] tempC=new ICTasDeCartesColorees[temp.length];
		for(int i=0;i<temp.length;i++){
			tempC[i]=(ICTasDeCartesColorees) temp[i];
		}
		return tempC;
	}
	
	public static void main(String[] args) {
		new CSolitaire("solitaire", new CUsine());
	}
}
